Image forming apparatus and control method therefor

ABSTRACT

This invention discloses an image forming apparatus having an image reading function that can correct the density even when an image is formed based on data acquired from an apparatus other than an image reading apparatus, and a control method therefor. A printer controller ( 2103 ) includes a PG unit ( 3112 ) for generating a pattern having a predetermined density. The pattern is transmitted to an engine controller ( 2002 ) via an output I/F to obtain a print result. Correction data representing the difference between a result obtained by reading the print result and a predetermined characteristic is received from a reader controller via a serial communication controller ( 3111 ). The correction data is stored in a data correction unit ( 3108 ) and used for printing data subsequently received via an input I/F.

FIELD OF THE INVENTION

The present invention relates to an image forming apparatus such as acopying machine having an image reading function and a control methodtherefor.

BACKGROUND OF THE INVENTION

Copying machines, and image forming systems using image reading andforming apparatuses have conventionally been used. Such a machine orsystem is designed to obtain an exact copy of an original. For thispurpose, it is important to adjust the density when read image data isoutput by the image forming apparatus.

For example, a known copying machine corrects the image density byprinting a specific pattern on a printing sheet by a printer, readingthe pattern by an image reader, comparing the actually read value with areference value, and correcting the density.

Density correction is, however, effective only when an image is formedon the basis of image data obtained by using the image readingapparatus, i.e., when the copying machine is used. This densitycorrection is not suitable when an image is formed by using image dataacquired without using the image reading apparatus or printing data suchas PDL (Page Description Language), e.g., when a network-connectablecopying machine is used as a printer from a computer on a network.

SUMMARY OF THE INVENTION

The present invention has been made to overcome the conventionaldrawbacks, and has as its object to provide an image forming apparatushaving an image reading function that can appropriately correct thedensity even when an image is formed based on data acquired from anapparatus other than an image reading apparatus, and a control methodtherefor.

According to a gist of the present invention, there is provided an imageforming apparatus comprising image forming means for forming an image onthe basis of print data and outputting the image, first print datageneration means for generating the print data from original image dataread by image reading means, and second print data generation meanswhich generates the print data on the basis of printing data receivedfrom a device other than the image reading means, and can communicatewith the first print data generation means, characterized in that thefirst print data generation means includes communication means capableof transmitting, to the second print data generation means, either ofthe original image data read by the image reading means, and correctiondata based on the original image data read by the image reading meansand predetermined data, and the second print data generation meansincludes test data generation means for generating test print data, andcorrection means for performing predetermined correction forsubsequently received printing data or the print data generated based onthe printing data, on the basis of the original image data andpredetermined data from the communication means or on the basis of thecorrection data.

According to another gist of the present invention, there is provided amethod of controlling an image forming apparatus having image formingmeans for forming an image on the basis of print data and outputting theimage, first print data generation means for generating the print datafrom original image data read by image reading means, and second printdata generation means which generates the print data on the basis ofprinting data received from a device other than the image reading means,and can communicate with the first print data generation means,characterized by comprising the communication step of generatingoriginal image data read by the image reading means, or correction databased on the original image data read by the image reading means andpredetermined data, and transmitting the original image data orcorrection data to the second print data generation means, and thecorrection step of causing the second print data generation means toperform predetermined correction for subsequently received printing dataor the print data generated based on printing data, on the basis of theoriginal image data and predetermined data or the correction datatransmitted in the communication step.

According to still another gist of the present invention, there isprovided a storage medium which stores a control program for an imageforming apparatus having image forming means for forming an image on thebasis of print data and outputting the image, first print datageneration means for generating the print data from original image dataread by image reading means, and second print data generation meanswhich generates the print data on the basis of printing data receivedfrom a device other than the image reading means, and can communicatewith the first print data generation means, characterized by comprisinga program code of the communication step of generating original imagedata read by the image reading means, or correction data based on theoriginal image data read by the image reading means and predetermineddata, and transmitting the original image data or correction data to thesecond print data generation means, and a program code of the correctionstep of causing the second print data generation means to performpredetermined correction for subsequently received printing data or theprint data generated based on printing data, on the basis of theoriginal image data and predetermined data or the correction datatransmitted in the communication step.

Other features and advantages of the present invention will be apparentfrom the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIGS. 1A and 1B are block diagrams showing the positioning of a printeras a basic function of an image processing apparatus in an overallarrangement;

FIG. 2 is a block diagram showing an arrangement of an image processingapparatus having a module structure;

FIG. 3 is a block diagram for explaining representative signalsexchanged between an engine controller and a printer controller in FIG.2;

FIG. 4 is a table showing a list of video I/F signals;

FIG. 5 is a sectional view schematically showing a printer mechanism andprinting medium convey path;

FIG. 6 is a timing chart showing the timings of signals exchanged via avideo I/F;

FIG. 7 is a timing chart showing communication timings between theprinter controller and the engine controller;

FIG. 8 is a view showing exchange of a command and status between theprinter controller and the engine controller;

FIG. 9 is a sectional view when the printer main body incorporates areader controller;

FIG. 10 is a sectional view showing the main part of an apparatus havingthe arrangement of FIG. 9;

FIG. 11 is a block diagram showing a signal transmission path in theapparatus shown in FIG. 10;

FIG. 12 is a block diagram showing the electrical connection between theprinter controller, the engine controller, and the reader controller inthe arrangement shown in FIG. 10;

FIG. 13 is a block diagram showing a portion of the reader controllerthat is associated with the printer controller and engine controller;

FIG. 14 is a graph showing the difference in timing between copying andprinting;

FIG. 15 is a block diagram showing another arrangement of the readercontroller;

FIGS. 16A and 16B are flow charts each showing a command issuingsequence in the absence of the reader controller;

FIG. 17 is a flow chart showing a communication sequence when the readeris mounted;

FIG. 18 is a flow chart showing a communication sequence when the readeris mounted;

FIG. 19 is a flow chart showing the operation of the reader controllerwhen a status change is transmitted to both the reader controller andprinter controller;

FIG. 20 is a block diagram showing the location and exchange of datawhen a print request is generated during copying operation;

FIG. 21 is a flow chart for explaining command processing when a printrequest is generated during copying operation;

FIG. 22 is a block diagram showing processing for a copying requestduring print operation;

FIG. 23 is a timing chart for explaining processing timings when aninterrupt copying request is generated during print-out operation;

FIG. 24 is a block diagram showing an internal arrangement of an imagesignal processor in the reader controller and a connection to peripheralcircuits;

FIG. 25 is a block diagram showing an arrangement concerning densitycorrection processing in the printer controller;

FIG. 26 is a graph for explaining a density correction principle; and

FIG. 27 is a view showing an example of a density pattern generated by aPG unit.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Preferred embodiments of the present invention will now be described indetail in accordance with the accompanying drawings.

[Overall Arrangement]

The overall arrangement will be described. FIGS. 1A and 1B are blockdiagrams showing the positioning of a printer as a basic function of animage processing apparatus in the overall arrangement. Reference numeral2101 denotes a video I/F which communicates with a printer 2102 andprinter controller 2103 (to be described later). Details of I/F signalswill be explained. The printer 2102 forms an electrical image signalreceived via the I/F 2101 into a visible image by using toner or thelike, transfers the image onto a printing sheet, and fixes and outputsthe image. To implement the image formation sequence, the printer 2102controls various loads. Further, the printer 2102 detects the printerstatus and notifies the printer controller of the status.

The printer controller 2103 receives data sent via a host computer 2104(FIG. 1A) or a network 2105 (FIG. 1B). Data are sent in various formatsas bitmap data and PDL (Page Description Language) data. The printercontroller 2103 rasterizes data in a memory and transfers the data asraster data to the printer 2102. In this manner, data created by thehost computer can be output from the printer. The printer controller andprinter are separately illustrated in FIGS. 1A and 1B for convenience,but the printer controller may be inside the printer, which is popularin an actual arrangement.

FIG. 2 is a block diagram showing an arrangement of an image processingapparatus having a module structure. In FIG. 2, reference numeral 2001denotes a printer main body as a basic structure; 2002, an enginecontroller for controlling sheet convey and image formation of theprinter; 2003, an image forming unit; 2103, the printer controller inFIGS. 1A and 1B which is incorporated in the printer main body 2001, asshown in FIG. 2; 2104, the host computer in FIG. 1A which is connectedto the printer controller 2103 in one-to-one correspondence or via thenetwork 2105; 2004, a sheet cassette deck which can be added as anoption; 2005, a sorter which can be added as an option; and 2006, anoption controller for controlling the optional cassette deck andoptional sorter. In the following description, the whole mechanismconcerning print operation in the printer main body, particularly thewhole mechanism controlled by the engine controller will be explained asa “printer” as descriptive convenience.

[Arrangements of Printer Controller and Printer]

The present invention relates to an image processing apparatus with acomposite function obtained when a module is mounted in the basicstructure to add a function. The arrangements of the printer controllerand printer will be explained as the premise of the image processingapparatus.

The video I/F 2101 connecting the printer controller and printer will bedescribed in detail. FIG. 3 is a block diagram for explainingrepresentative signals exchanged between the engine controller 2002 andthe printer controller 2103 in FIG. 2.

FIG. 4 shows a list of video I/F signals, among which the representativesignals shown in FIG. 3 will be explained.

A /PPRDY signal 203 represents that the printer is turned on, processingsuch as initial setting ends, and communication with the printercontroller is enabled.

A /CPRDY signal 204 represents that the printer controller is turned on,processing such as initial setting ends, and communication with theengine controller is enabled.

A /RDY signal 205 represents that the engine controller receives a printstart instruction (/PRNT signal to be described below) from the printercontroller and enables print operation. This signal becomes true wheneach portion of the printer normally operates, e.g., the internaltemperature of a fixing unit reaches a predetermined temperature, noprinting sheet remains in the printer, or a polygon mirror rotates at apredetermined speed.

A /PRNT signal 206 is used by the printer controller to instruct theengine controller to start or continue print operation.

A /TOP signal 207 is a sync signal serving as the reference of verticalimage scanning that is transferred from the engine controller to theprinter controller. This signal is output a predetermined time after thesignal 206 is output from the printer controller.

A /LSYNC signal 208 is a sync signal used as the reference of horizontalscanning by the printer controller. Similar to the /TOP signal, the/LSYNC signal 208 is output a predetermined time after the signal 206 isoutput from the printer controller.

A /VCLK signal 209 is a sync clock for /VDOEN and /VDO signals (to bedescribed below), and causes the printer controller to output a clockhaving a frequency corresponding to an image signal.

A /VDOEN signal 210 is for controlling input of an image signal from theprinter controller to the engine controller. The engine controllerdetects whether the signal 210 is true/false in synchronism with the/VCLK signal, receives the signal 210 if it is true, and does notreceive the signal 210 if it is false.

A /VDO signal 211 is image data. The printer controller outputs the /VDOsignal 211 in synchronism with the /VCLK signal by using as a referencethe /TOP signal for the vertical direction or the /LSYNC signal for thehorizontal direction.

A /CCLK signal 212 is a sync clock when the printer controller transmitsa serial command to the engine controller and the engine controllersends back a serial status to the printer controller. The /CCLK signal212 is output from the printer controller.

A /CBSY signal 213 represents to the engine controller that the printercontroller transmits a serial command by using a /CMD signal (to bedescribed below).

A /CMD signal 214 is used by the printer controller in transmittingserial information to the engine controller. Serial information will bereferred to as a command.

A /SBSY signal 215 represents to the printer controller that the enginecontroller sends back a serial status by using a /STS signal.

A /STS signal 216 is used by the engine controller in sending backserial information to the printer controller. Serial information will bereferred to as a status.

A /CCRT signal 217 notifies the printer controller that the internalstatus of the printer changed. Upon reception of this notificationsignal, the printer controller uses the /CMD signal to issue a commandof inquiring a portion changed in status on the engine side. In responseto this, the engine controller uses the /STS signal to notify theprinter controller of the status.

The printer controlled by the engine controller will be described withreference to FIG. 5. FIG. 5 is a sectional view schematically showing aprinter mechanism and printing medium convey path. Anelectrophotographic color printer is exemplified in FIG. 5.

Reference numeral 401 denotes a scanner which receives an image signal(/VDO) sent from the printer controller (not shown), irradiates aphotosensitive body 402 with a laser beam corresponding to the imagesignal, and forms a charged image on the photosensitive body. Thephotosensitive body 402 rotates counterclockwise and reaches a blackdeveloping unit 404 or color developing unit 403. The developing units403 and 404 apply toners (develop) to the photosensitive body inaccordance with electric charges on the photosensitive body. Only theblack developing unit 404 operates for a monochrome image, whereas boththe developing units 403 and 404 are sequentially used for a colorimage. The toner image formed on the photosensitive body is transferredto an intermediate transfer body 405 which is in contact with thephotosensitive body 402 and rotates clockwise. This intermediatetransfer body is rotated once for a monochrome image, and four times fora color image, thereby transferring the monochrome or color image on theintermediate transfer body.

A printing medium such as a printing sheet fed from an upper cassette408 or lower cassette 409 via a pickup roller 411 or 412 is conveyed byfeed rollers 413 or 414, and further conveyed up to registration rollers420 by a convey roller 415. To convey a printing sheet from a manualfeed unit, the printing sheet is conveyed up to the registration rollers420 by a convey roller 416.

The registration rollers 420 convey the printing sheet such that theprinting sheet reaches the position between the intermediate transferbody and a transfer belt 406 at a timing when formation of a toner imageon the intermediate transfer body 405 ends. When the printing sheetreaches this position, the transfer belt comes into contact with theintermediate transfer body via the printing sheet, and the toner imageformed on the intermediate transfer body 405 is transferred to theprinting sheet. The image transferred to the printing sheet is fixed tothe printing sheet by the heat and pressure of fixing rollers 407.

The image-bearing printing sheet is conveyed to and delivered fromeither a faceup delivery port 417 or facedown delivery port 418designated by the printer controller in advance. For two-sided printing,the printing sheet undergoes print processing again via a convey path421. As a result, image information sent from the printer controller canbe output.

FIG. 6 shows the timings of signals exchanged via the video I/F. FIG. 6shows the above-described signals of the video I/F with the lapse oftime.

When preparations for image information are completed, the printercontroller sets the /PRNT signal to low (true) and notifies the enginecontroller of the completion of preparations. At the same time, theprinter controller generates an image sync signal /VCLK used to transferan image signal.

In response to this, the engine controller performs necessary processingsuch as various settings in the printer, and when reception of an imagesignal becomes possible, outputs the vertical sync signal /TOP andhorizontal sync signal /LSYNC to the printer controller.

The printer controller transfers the image signal /VDO and image validsignal /VDOEN to the engine controller in response to the received /TOPsignal and /LSYNC signal. The series of processes are repeated toperform entire printing.

Exchange of a command and status between the printer controller and theengine controller during print operation will be explained. FIG. 7 isshows communication timings between the printer controller and theengine controller. Communication is serial.

A case wherein the /CCRT signal on the lowest stage is not used will bedescribed. To issue (transmit) a command to the engine controller, theprinter controller sets the /CBSY signal to low (true) and sends commanddata on the /CMD signal in synchronism with the clock signal /CCLK. Theengine controller having received the data checks whether the /CBSYsignal is high (false), changes the /SBSY signal to low (true), andsends back engine-side status data corresponding to the command on thestatus signal /STS in synchronism with the /CCLK signal generated fromthe printer controller. The printer controller receives the status data,and continues or stops print control in accordance with the status.

A case wherein the /CCRT signal is used will be described. This signalchanges to low (true) when the status on the engine side designated bythe printer controller in advance changes. Assume that the printercontroller sets by the signal /CMD that the /CCRT signal is enabled whensheets run out, that the number of remaining printing sheets is onlyone, and that the printer controller requests two printouts. Printsequence operation is normally processed for the first printout, but nosecond printing sheet exists. Thus, when formation of the second imagestarts, the printer engine detects a change in status and changes the/CCRT signal from high to low. This signal is transmitted to the printercontroller. Immediately upon detecting this, the printer controllerissues to the engine controller a command of requesting the sheetpresence/absence status of a sheet feed unit in order to detect whichsheet cassette is out of sheets. In accordance with this command, theengine controller sends back the status of out-of-sheet cassette to thecontroller. The /CCRT signal is cleared to high at a timing when thestatus-sending /SBSY signal changes to low.

Detailed print operation will be explained with reference to FIG. 8showing exchange of a command and status between the printer controllerand the engine controller. FIG. 8 shows a case wherein a color output isdone.

Upon reception of a print start request from the host computer or thelike, the printer controller checks a printer ready status with respectto the engine controller while performing conversion processing or thelike for image data to be printed. When receiving the ready status fromthe engine controller, the printer controller designates the lowercassette in FIG. 8 in which a command of designating the sheet feedstage of printing sheets is issued. The engine controller sends back asheet feed status with respect to the cassette designation. Then, thecontroller issues a command of requesting information about the size ofprinting sheets in the designate cassettes, and the engine controllerresponds to this.

After sheet feed information is exchanged, the printer controller issuesa deliver FU designation command of designating a delivery port, and theengine controller sends back the status of the designated delivery port.A page mode designation command of designating the number of pages ofimages to be formed and a monochrome/color designation command areissued, and responses to these commands are repeated, thereby completingall the settings on the printer side.

After the printer is set, the printer controller generates a printrequest to the engine controller (changes /PRNT to true), and generatesa clock signal (/VCLK). The engine controller waits for a predeterminedtime after the /PRNT signal becomes true, and outputs the /TOP signaland horizontal sync signal (/LSYNC). Upon reception of the /TOP signal,the printer controller counts the /LSYNC signal for a predeterminedtime, and transfers an image signal (/VDO) to the engine controller insynchronism with the /VCLK signal while synchronizing the verticalscanning direction with the /TOP signal and the horizontal scanningdirection with the /LSYNC signal. In this case, a color mode is set, anddata transfer processing is repeated until images of four, C, M, Y, andK colors are formed and processing of one page ends.

The printer controller returns the /PRNT signal to high (false) afterreceiving the final /TOP signal. The engine controller detects the endof the print request by confirming the status (false) of the /PRNTsignal at the end timing of image formation processing. Then, the enginecontroller shifts to post-processing such as cleaning operation of theintermediate transfer body. A printing sheet bearing a toner image afterprint processing passes through the fixing rollers and is delivered froma designated delivery port. The printer controller issues a print statusrequest to the engine controller. After confirming a responserepresenting no printing sheet convey status (end of deliver) from theengine controller, the printer controller changes to a print end statusupon a predetermined wait time, and stands by in a ready status untilthe next print request is generated.

If an illegal status such as jam of a printing sheet, the absence ofprinting sheets, or door open operation by the user is generated duringthe above operation, the engine controller uses the /CCRT signal or thelike to immediately notify the printer controller of the printerabnormality. The printer controller executes remedy processing.

Processing between the printer controller and the engine controller hasbeen described.

[Arrangement when Reader Controller is Mounted]

FIG. 9 is a sectional view when the printer main body incorporates areader controller for optically reading an original image on a sheet inaddition to image data output from the printer controller based on datatransferred from the host computer, converting the read data into adigital signal, and outputting the digital signal.

Reference numeral 801 denotes an original feeder for conveying anoriginal to an optical reading unit; 802, an optical reader; and 805, anoriginal glass table of the optical reader. The original feeder 801operates in synchronism with the optical reader 802. When the originalfeeder 801 feeds an original onto the original glass table 805, thereading unit incorporated in the optical reader 802 scans the imagewhile moving in the right-and-left direction in FIG. 9, and emitsreflected light having undergone proper optical processing to aphotoelectric converter 804. Reference numeral 803 denotes a printermain body.

FIG. 10 is a sectional view showing the main part of an apparatus havingthe arrangement of FIG. 9 and showing an arrangement obtained when theoptical reader (reader) is added to the arrangement shown in FIG. 2. InFIG. 10, the same reference numerals as in FIG. 2 denote the same parts.

In FIG. 10, reference numeral 101 denotes a reader frame; 102, anoriginal table; 103, a light source; 104, a photoelectric conversionmeans; 105, an A/D conversion means; 106, a reader controller; 2001, theprinter main body; 2002, the engine controller for controlling sheetconvey and image formation of the printer; 2003, the image forming unit;2103, the printer controller incorporated in the printer main body 2001;2104, the host computer connected to the printer controller 2103 inone-to-one correspondence or via the network 2105; 2004, the sheetcassette deck which can be added as an option; 2005, the sorter whichcan be added as an option; and 2006, the option controller forcontrolling the optional cassette deck and optional sorter.

The reader controller 106 has a means for processing a digital imageoutput from the A/D conversion means, a motor control means (not shown)for reading an image, and a function of controlling communication withthe engine controller 2002 and printer controller 2103. In the presentinvention, the reader controller 106 is arranged in the printer mainbody 2001 so as not to use an external cable for controllingcommunication with the engine controller 2002 and printer controller2103.

FIG. 11 is a block diagram showing a signal transmission path in theapparatus shown in FIG. 10. As shown in FIG. 11, all the signals betweenthe host computer, the printer controller 2103, and the enginecontroller 2002 and all the signals between a reader 2501, the readercontroller 106, and the engine controller 2002 pass through a selector2201 in the reader controller. In FIG. 11, all the building componentsof the reader except for the reader controller 106 are represented asthe reader 2501. In FIG. 11, the selector 2201 is arranged in the readercontroller 106, but the selector may be arranged in the enginecontroller by exchanging the positions of the reader controller andengine controller or may be separated from the reader controller andengine controller.

FIG. 12 is a block diagram showing the electrical connection between theprinter controller, the engine controller, and the reader controller inthe arrangement shown in FIG. 10. The reader controller 106 is locatedat the electrically intermediate position between the printer controller2103 and the engine controller 2002 in FIG. 3 showing an arrangementbefore the reader is mounted. The types of signal lines between theprinter controller 2103 and the reader controller 106 and between theengine controller 2002 and the reader controller 106 have the samefunctions as those of the types of signal lines shown in FIG. 3. Notethat signals between the printer controller 2103 and the readercontroller 106 are physically different from signals between the enginecontroller 2002 and the reader controller 106. In the followingdescription, these signals are distinguished by adding “C” to the signalnames of signals between the printer controller 2103 and the readercontroller 106 and “P” to the heads of the signal names of signalsbetween the reader controller 106 and the engine controller. Signalsassigned neither “C” nor “P” mean common signals.

Reference numeral 902 denotes an image signal processing unit; 903, anoriginal scan optical system control unit for controlling the opticalreader 802 in FIG. 9; 904, an original feed control unit for controllingthe original feeder 801; 905, an operation unit; and 906, an image inputunit. An image signal converted by the photoelectric converter 804 inthe optical reader 802 is input from the image input unit 906 to thereader controller 106, and transferred to the internal image signalprocessing unit 902.

The arrangement of the reader controller will be explained in detail.FIG. 13 is a block diagram showing a portion associated with the printercontroller and engine controller in the arrangement of the readercontroller 106.

In FIG. 13, reference numeral 902 denotes the image signal processingunit shown in FIG. 12; 906, the image input unit shown in FIG. 12; 2201,the selector for selecting either of an output from the image input unit906 and a signal sent from the printer controller 2103 and outputtingthe selected signal to the engine controller 2002. Signal systemsswitched by the selector are three, image clock /VCLK, image enablesignal /VDOEN, and image data /VDO. Reference numeral 2202 denotes aserial communication controller for communicating with the enginecontroller; 2203, an I/O port for exchanging signals for compensatingfor communication in the communication controller; and 2204, aninterrupt controller. The interrupt controller receives an image leadingend request signal /PTOP and printer status change signal /PCCRT.

Reference numeral 2205 denotes a serial communication controller forcommunicating with the printer controller; 2206, an I/O port forexchanging signals for compensating for communication in thecommunication controller; and 2207 and 2210, first and second gates forcontrolling whether to send to the printer controller a signaltransmitted from the printer. The gates are controlled by an imageleading end request signal /TOP and line sync signal /LSYNC. Referencenumeral 2208 denotes a control circuit which has a gate function andflag set function and controls a printer status change signal /CCRT.Whether to transfer the printer status change signal /PCCRT issued bythe engine controller to the printer controller is controlled byopening/closing the gate. By setting the flag, the printer status changesignal /CCCRT can be issued from the reader controller to the printercontroller.

[Copying Operation]

An operation when a full-color original image is read and output fromthe image forming apparatus will be explained with reference to FIGS. 9,12, and 13. When a copying start key (not shown) on the operation unit905 is pressed, the reader controller 106 recognizes the copying mode,closes the gates 2207 and 2210, turns off the control circuit 2208, andsets the selector 2201 so as to output a signal from the image signalprocessing unit 902.

The reader controller 106 checks the printer ready status signal /PPRDYfrom the engine controller 2002 via the I/O port 2203. The readercontroller 106 performs various settings in the engine controller in theabove-mentioned way by using the serial communication controller 2202.In other words, the reader controller 106 sequentially issues a commandof designating the sheet feed stage of printing sheets and a command ofrequesting the printing sheet size of the designated sheet feed stage.The engine controller sends back statuses corresponding to the series ofcommands.

The reader controller 106 determines a delivery port by a delivery portdesignation command and issues a page mode designation command ofdesignating the number of pages of images to be formed. The readercontroller 106 issues a command of designating monochrome/color printingand ends all the settings on the printer side.

After the original feeder 801 feeds an original to the original tablevia the original feed control unit 904, the reader controller generatesa print request /PPRNT signal to the engine controller. In response tothis, the engine controller sends back the /PTOP signal after apredetermined time. The interrupt controller 2204 which received the/PTOP signal outputs an interrupt to a CPU 2209, and the CPU 2209controls the optical system control unit 903 so as to operate theoptical reader 802 in synchronism with the /PTOP signal. A signal inputfrom the photoelectric converter 804 to the image signal processing unit902 is transferred as the /PVDO signal to the engine controller insynchronism with the /PVCLK signal while synchronizing the vertical scandirection with the /PTOP signal and the horizontal scan direction withthe /PLSYNC signal. Since a color mode is set in this case, the opticalreader 802 is operated four times, and images of four, C, M, Y, and Kcolors are formed with respect to four generated /PTOP signals.

Upon reception of the final /TOP signal, the printer controller returnsthe /PRNT signal to high (false). The engine controller detects the endof the print request and shifts to post-processing such as cleaningoperation of the intermediate transfer body. A printing sheet bearing atoner image after print processing passes through the fixing rollers andis delivered from a designated delivery port. The printer controllerissues a print status request to the engine controller. After confirminga response representing no printing sheet convey status (end of deliver)from the engine controller, the printer controller changes to a printend status upon a predetermined wait time, and stands by in a readystatus until the next print request is generated.

[Print Operation]

A method when an image from the printer controller is output (printed)from the image forming apparatus will be described. The readercontroller 106 changes to a ready status when copying operation ends. Atthis time, the reader controller opens the gates 2207 and 2210 and turnsoff the control circuit 2208 for the sake of print operation. The readercontroller checks a printer ready status signal /PRDY from the enginecontroller via the I/O port 2203. If the printer ready status signal/PRDY is enabled, the reader controller 106 sets a printer ready statussignal /CRDY in the printer controller via the I/O port 2206.

The printer controller performs the same communication with the readercontroller as conventional communication with the engine controller forthe purpose of various settings. The reader controller communicates withthe printer controller by using the serial communication controller2205. The reader controller interprets received data from the printercontroller by using the CPU 2209 and performs various settings withrespect to the engine controller in accordance with the contents of thedata. The reader controller communicates with the engine controller byusing the serial communication controller 2202. The engine controllersends back, to the reader controller, statuses corresponding to a seriesof commands issued from the reader controller, and the reader controllerreceives the statuses by using the serial communication controller 2202.The received contents are interpreted by the CPU 2209 and transmitted tothe printer controller by using the serial communication controller2205.

The printer controller generates a print request /CPRNT signal to thereader controller, and the reader controller which received this signalgenerates a print request /PPRNT signal to the engine controller. Inresponse to this, the engine controller sends back the /PTOP signalafter a predetermined time. Since the gate 2210 is open, the /PTOPsignal directly reaches the printer controller as a /CTOP signal. Theprinter controller transfers the /CVDO signal to the reader controllerin synchronism with the /CLSYNC signal received via the gate controller2207 while synchronizing the vertical scan direction with the /CTOPsignal, i.e., in synchronism with the /CVCLK signal while synchronizingthe horizontal scanning direction with the /PLSYNC signal. In the readercontroller, the selector 2201 is set to select a signal sent from thecontroller. The /CVCLK, /CVDOEN, and /CVDO signals sent from thecontroller are respectively transmitted as /PVCLK, /PVDOEN, and /PVDO tothe engine controller.

[Difference Between Print Operation and Copying Operation]

The difference between print operation and copying operation will bedescribed in terms of the image output timing.

A detailed description of the arrangement of the printer controller 2103will be omitted. The printer controller 2103 incorporates an imagememory where image data to be printed is prepared in advance. Only anelectrical delay time is required until the printing data /VDO can beoutput upon reception of the image leading end request signal /TOP sentfrom the engine controller.

To the contrary, in the copying mode, an original is read to outputimage data, while the optical reader 802 is moved. As shown in FIG. 14,an acceleration time is required by changing the idle reader to a statusin which the reader moves at a high original read speed. This time is,e.g., about several hundred ms. If the engine controller sends the imageleading end request signal /TOP in the copying mode at the same timingas a signal in the print mode, the image data /VDO reaches the enginecontroller with a delay of several hundred ms in the copying mode. Thistime difference can be reduced by the following two methods.

-   1. /TOP is sent earlier in the copying mode than in the print mode.-   2. Another signal (RESTART) is used for the copying mode.

In method 1, the arrangement of the reader controller 106 in FIG. 13need not be changed, and the reader controller starts moving theoriginal reader upon reception of the /TOP signal in the copying mode.More specifically, the reader controller 106 sends /TOP earlier inconsideration of the delay of mechanical operation so as to make themoving start timing coincide with the read start timing in FIG. 14. Inmethod 2, an arrangement shown in FIG. 15 is adopted. The arrangement inFIG. 15 is different from that in FIG. 13 in that a new signal /RSTARTis input to the interrupt controller 2204 instead of the /PTOP signal.This arrangement is effective because the image leading end requestsignal /PTOP sent from the engine controller is necessary only when theprinter controller executes print operation, and need not be input tothe interrupt controller of the reader controller, and because thereader moving start request signal /RSTART sent from the enginecontroller is necessary only in the copying mode and need not be sent tothe printer controller. In the arrangement of FIG. 15, the enginecontroller sends the /RSTART signal at a timing considering theoperation delay of the original reader. This can reduce the timedifference between the modes.

[Control for Setting Command]

As described above, the reader controller is connected between theprinter controller and the engine controller. The printer controller andengine controller communicate with each other via the reader controller.The following description concerns an operation when the printercontroller issues a setting command, e.g., sheet cassette change commandto the printer while the reader controller reads and outputs an originalimage by using the optical system controller.

For descriptive convenience, a command issuing sequence when no readercontroller is used, i.e., in the arrangement of FIG. 3 will be explainedwith reference to FIGS. 16A and 16B. FIG. 16A shows a processingsequence in the printer controller, and FIG. 16B shows a processingsequence in the engine controller.

The printer controller issues a sheet cassette change command (S1801)and waits for a response from the engine controller (S1802). Uponreceiving the response, the printer controller determines whether thecommand was successfully executed (S1803), and ends the command issuingsequence. The engine controller waits for a command to be issued fromthe printer controller (S1811), and if a command is issued, checks thecontents of the command (S1812). For the sheet cassette change command,the engine controller changes the sheet cassette (S1813), and if thesheet cassette was successfully changed, notifies the printer controllerof the success of command execution (S1815). Then, the engine controllerreturns to the command wait status. For a command other than the sheetcassette change command, the engine controller performs processingcorresponding to the command (S1814) and returns to the command waitstatus.

A processing sequence when the reader controller is added will beexplained with reference to FIGS. 17 and 18. Note that the printercontroller and engine controller execute the same control as shown inFIGS. 16A and 16B.

FIG. 17 is a flow chart showing control of receiving a command from theprinter controller and sending back a status to the printer controller.The reader controller receives a command from the printer controller viathe signal line /CCMD shown in FIG. 12 by using the serial communicationcontroller 2205 (S1901), and determines whether the received command canbe immediately sent to the engine controller (S1902).

For example, when the reader controller can issue a command to theengine controller in order to perform copying mode operation becausethere is no instruction in progress, the reader controller issues via asignal line /PCMD the same command as the command sent from the printercontroller by using the serial communication controller 2202 (stepS1903). The reader controller waits for a response to the issued command(S1905), and upon receiving a response representing that the command wasnormally executed, notifies the printer controller of the success ofexecution (S1908). If execution of the command fails, the readercontroller performs predetermined error processing, e.g., reissues acommand (S1907).

To the contrary, when copying operation is not normally executed if thereader controller directly issues the sheet cassette change command sentfrom the printer controller to the engine controller because, e.g., thereader controller designates a sheet cassette and executes copyingoperation, the reader controller does not issue any command to theengine controller, and stores the command in an engine command queuewhere commands issued from the printer controller to the enginecontroller are stored in the issuing order (S1904).

Since the reader controller has to send back a response to the commandto the printer controller, the reader controller sends back a pseudonotification representing that the command was successfully executed, tothe printer controller via a signal line /CSTS by using the serialcommunication controller 2205 (S1908).

Processing of a command stored in the engine command queue will beexplained with reference to FIG. 18. If the reader controller changes toa status in which it can issue a command received from the printercontroller to the engine controller without influencing the status ofthe reader controller (YES in S2001), the reader controller issues theoldest command stored in the engine command queue to the enginecontroller via the signal line /PCMD by using the serial communicationcontroller 2202 (S2002), and waits for a response (S2003). Note that acommand issued by the reader controller itself is also transmitted tothe engine controller via the signal line /PCMD.

After the engine controller completes execution of the command, thereader controller receives the response via the signal line /PSTS(S2004). If execution succeeds, the reader controller deletes thesuccessful command from the engine command queue (S2005). If executionof the command fails, the reader controller processes it as an errorgeneration status (S2006).

In this way, when the reader controller is interposed between theprinter controller and the engine controller, the command processingsequence can be achieved without any operational inconsistency inissuing a normal command from the printer controller to the enginecontroller.

[Control to Status Change Signal]

The following description concerns processing when the engine controlleruses /PCCRT to transmit to the reader controller that the status on theengine side changes, e.g., an error occurs when the reader controller isinterposed between the printer controller and the engine controller.

When the reader controller is interposed, the type of printer statuswhose change is to be detected may be different between the readercontroller and the printer controller. This occurs when, e.g., a sheetduring conveyance jams.

If jam occurs while the engine performs copying operation under thecontrol of the reader controller, only the reader controller wants toknow this status. The printer controller cannot execute appropriatepost-processing even if it knows this status because the jam does notoccur during output from the printer controller.

If a control system identical to the reader controller is to be mountedin the printer controller, jam processing control software which shouldexist in one of the controllers is repetitively installed in the twocontrollers. This is very wasteful in terms of the number of designsteps, quality evaluation, and software capacity.

It, therefore, suffices to notify the printer controller of a statuschange in the print mode and the reader controller of a status change inthe copying mode. Even in the copying mode, however, the printercontroller sometimes wants to receive an engine status change signal.For example, the printer controller must be notified of informationabout a change in cassette size or the absence of sheets. Such a changedoes not require a strict time until each controller performs processingafter the engine controller issues a status change signal.

For this reason, the following processing is done. In the copying modein which the reader controller controls the engine controller in thearrangement of FIG. 13, a status change signal /PCCRT sent from theengine controller by using the control circuit 2208 is not transmittedto the printer controller but received by only the reader controller viathe interrupt controller 2204.

FIG. 19 is a flow chart showing the operation of the reader controllerwhen a status change is transmitted to both the reader controller andprinter controller. If the /PCCRT signal becomes true in S2101, thereader controller issues a command of acquiring the status change to theengine controller (S2102). The reader controller waits for a responsefrom the engine controller (S2103), and grasps the contents of thestatus change of the engine from the received status (S2104). The readercontroller determines whether to notify the printer controller of thecontents (S2105). For example, the reader controller notifies theprinter controller of a change in sheet cassette size.

If the reader controller determines to notify the printer controller ofthe contents, the reader controller sets a flag by using the controlcircuit 2208, generates a status change signal /CCCRT, and notifies theprinter controller of the contents (S2106). If the reader controllerreceives an inquiry about the status change signal (YES in S2107), ittransmits to the printer controller the status change received from theengine controller as a status (S2108). After transmitting the status,the reader controller changes the status change signal /CCCRT to false.

If the response from the engine controller represents a status change ofwhich the printer controller need not be notified, the reader controllerexecutes necessary processing (S2110) and does not notify the printercontroller of this.

In the print mode in which the printer controller controls the enginecontroller, the gate of the control circuit 2208 is open, as describedabove. Thus, the status change signal /PCCRT sent from the enginecontroller is directly received as the status change signal /CCCRT bythe printer controller.

[Control to Execution Command]

Control of an execution command will be explained. Control of the readercontroller when the printer controller and reader controllersimultaneously issue use requests to the engine controller will beexemplified.

FIG. 20 is a block diagram showing the location and exchange of datawhen a print request is generated during copying operation. At thistime, the engine controller receives an image signal /PVDO sent from thereader controller and forms an image. This operation is done aftersettings such as designation of a sheet cassette, designation of adelivery port, and setting of an image formation mode, as shown in FIG.8, have already been completed between the reader controller and theengine controller by serial communication. Reference numeral 1301denotes a buffer for various set values that is incorporated in thereader controller 106, e.g., in the CPU. The buffer 1301 stores, atdifferent locations, a value set by the reader controller to the enginecontroller and a value set by the printer controller to the enginecontroller.

If the printer controller issues a print request during copyingoperation, it is difficult in terms of the usability to execute printprocessing by interrupting copying operation. The print request in thissituation suspends until copying operation ends.

However, a status /CSTS with respect to a command /CCMD from the printercontroller must be sent back within a predetermined time. For thisreason, only a set value requested by /CCMD is stored in a printercontroller (PDL) area of the buffer 1301. When a set value for thereader is different from a set value for PDL, the reader controller setsthe value in the engine controller before print operation starts aftercopying operation ends. This will be explained in detail with referenceto FIG. 21.

Assume that the printer is in copying operation, a sheet is set to befed from the upper cassette and delivered to a faceup delivery port, andthe image formation mode is set to a color mode for a color original.When the printer controller issues a print request, execution of printoperation itself suspends, but various settings can be done. Assume thatset values upon issuing the print request represent that a sheet is fedfrom an upper cassette and delivered to a facedown delivery port and amonochrome image is output. In this case, the reader controller storesthe set values by a command from the printer controller in apredetermined area of the buffer 1301 (S2201) and sends back a status/CSTS (S2202). After copying operation ends (YES in S2203), the readercontroller compares a value set in copying operation with the set valuerequested by the printer controller for each set item in the buffer(S2204 and S2205). If the set values are the same, they are not changed;if the set values are different, the reader controller issues a command/PCMD and updates the set value before the start of print operation(S2206).

In this example, as for the sheet cassette, both the reader controllerand printer controller designate the upper cassette. The readercontroller need not issue any sheet cassette designation command whencopying operation ends and is switched to print operation. As for thedelivery port and image formation mode, different ports and modes aredesignated between copying operation and print operation. When copyingoperation ends, the reader controller issues a delivery port designationcommand and image formation mode designation command to the enginecontroller. This operation is repeated for all the setting items (S2204to S2207), and then processing ends.

The reader controller determines a command from the printer controllerso as not only to suspend execution of a command to the enginecontroller but also to prevent repetitive setting of values which havealready been set by the reader controller to the engine controller.

A case wherein a copying request is issued during print operation willbe described with reference to FIG. 22. In this case, it is morepreferable in terms of the usability in contrast to the case of FIG. 20that copying operation interrupt print operation and be executed, thanthat a copying button is pressed in front of the copying machine butcopying operation cannot be done owing to the progress of printoperation.

In the print mode, as shown in FIG. 22, image data /CVDO sent from theprinter controller 2103 is selected by the selector 2201 and transmittedas /PVDO to the engine controller 2002. Assume that settings from theprinter controller are the upper cassette, facedown delivery port, andmonochrome image mode. The engine controller can detect the end onlywhen a /PPRN signal from the printer controller changes to high (false),and does not know the number of prints to be obtained. Assume that theprinter is to print out four images. If the reader does not issue acopying operation request by an interrupt, the engine controllergenerates four /PTOP signals at image timings as shown in FIG. 6, andimages are sent from the printer controller to the engine controller viathe reader controller 106 in accordance with the signals.

A processing timing when an interrupt copying request for one copy of acolor original is generated in the reader controller while the secondimage is printed out will be explained with reference to FIG. 23. Thereader controller issues a /PPRNT request to the engine controller uponreception of a /CPRNT request from the printer controller, and theengine controller supplies a /PTOP signal as a /CTOP signal to theprinter controller via the reader controller. Then, print operation offirst and second images 1501 and 1502 is executed.

A case wherein the reader controller issues an interrupt copying requestwhile the second image is printed out will be described. The readercontroller generates a /CCCRT signal to the printer controller. Thissignal does not represent an actual change in engine status but requeststhe printer controller to free the engine in order to allow the readerto control the printer engine. The signal is generated by using thecontrol circuit 2208, as described above. The printer controller issuesa command of checking the engine status with respect to the /CCCRTsignal, and the reader controller sends back a “copying-in-progress”status to the printer controller with respect to the checking command.

In general, the printer controller generates a time-out error apredetermined time after no /CTOP is supplied while /CPRNT is kept low(true). However, the printer controller is set to cancel the time-outerror and permanently wait for the /CTOP signal when the printercontroller receives the “copying-in-progress” status. Hence, the printercontroller detects that the engine is in copying operation, and waitsfor the /CTOP signal while keeping the /CPRNT signal to low (true).

Since the image formation mode changes to the copying mode, the readercontroller switches the selector and gate so as not to transmit the/PTOP signal from the engine controller to the printer controller(1505). The reader controller transmits the data received from thereader as image data /PVDO to the engine controller (1506). After aninterrupt copy is obtained (FIG. 23 shows one interrupt copy), the imageformation mode changes to the print mode again. The reader controllercancels masking of the /PTOP signal and sends it as /CTOP to the printercontroller. The printer controller resumes operation and transmits thirdand fourth image data 1503 and 1504 to the engine controller where theimage data 1503 and 1504 can be printed out. Interrupt copying operationduring print operation can be achieved in this fashion.

The reader controller determines and controls either of the printercontroller and reader controller which is to control the printer engine,and the timing of issuing a command in accordance with the situation.This realizes requests from two controllers for one engine.

[Control to Set Content Confirmation Command]

Control when the printer controller issues a set content confirmationcommand will be explained.

When the printer controller is to confirm a status set in the enginecontroller, the printer controller issues a set content confirmationcommand via /CCMD. The reader controller which has received this commandchecks an area of the set value storage buffer 1301 (FIG. 20), whichcorresponds to the current mode. If the set value requested by theprinter controller is found, the reader controller reads out thecontents and notifies the printer controller of the contents via /CSTS.If the printer controller requests a set value which is not in thebuffer, the reader controller issues a set content confirmation commandto the engine controller via /PCMD. The engine controller reads out thecontents and notifies the reader controller of the set contents via/PSTS. The reader controller notifies the printer controller of thecontents via /CSTS.

[Density Correction Method]

A density adjustment method as a feature of the present invention willbe described.

The density is adjusted to reduce variations in print density in theprinter and obtain an output of a desired print density.

[Density Correction Processing in Copying]

Density correction processing when the above-described image formingapparatus is used as a copying machine will be explained.

FIG. 24 is a block diagram showing the internal arrangement of the imagesignal processing unit 902 in the reader controller 106 and theperipheral circuits.

In FIG. 24, the image input unit 906 transfers an image signal convertedby the photoelectric converter 804 (104) such as a CCD sensor to theimage signal processor. The image signal processing unit 902 comprises ashading correction unit 3002 for correcting the profile of the imageinput unit 906, an input masking unit 3003 for correcting thecharacteristics of the image input unit 906, an undercolor removal unit3004 for replacing cyan, magenta and yellow with black (K), a directmapping unit 3005 for performing correction suitable for thecharacteristics of an output unit (printer), a data sampling unit 3006,an output γ unit 3007, an output processing unit 3008 for performingbinarization processing or the like, and a PG (Pattern Generator) unit3009.

The density is corrected by the following procedures.

Image data representing a density pattern made up of a plurality ofpatches (small-area portions) with different densities is generated bythe PG unit 3009 and output on a printing sheet by the printer.

FIG. 27 is a view showing an output example of the pattern generated bythe PG unit 3009. As shown in FIG. 27, density patterns are output forK, C, M, and Y colors when density correction is done for a printercapable of a color output.

This pattern output is placed on the original glass table 805 ororiginal feeder 801 of the reader, and the pattern image is read. Theread pattern data is supplied to the image signal processing unit 902shown in FIG. 24 via the image input unit 906, and sampled by the datasampling unit 3006. The sampling result is processed by the CPU 2209shown in FIG. 24.

The processing contents of the CPU 2209 will be explained with referenceto FIG. 26. The CPU 2209 calculates the difference between digital dataof the pattern formation density and an actual output density (or avalue of image data obtained by reading it), and adjusts (corrects) thedensity so as to eliminate the difference.

For example, a pattern generated by the PG unit 3009 has eight densitylevels with intervals of 32 from a density of 0 (in FIG. 27, a patternis made up of seven types of density patches including a density of 0(no data is printed)). A predetermined number of pixel data are sampledfrom each density patch on the basis of the difference from the readimage data input to the data sampling unit 3006. The CPU 2209 calculatesthe sample average value for each density patch.

The sample average value (output value) for each density patch isplotted in correspondence with the value in input (input value), asrepresented by · in FIG. 26. An ideal input/output characteristic isdetermined in advance, and the density is corrected to eliminate thedifference between the measured value and the ideal characteristic.

For example, a straight line b represents an input/output characteristicattained by connecting measured values, and a straight line a representsan ideal input/output characteristic determined in advance. In thiscase, an actual output density decreases in comparison with an idealoutput density with respect to input digital data. To obtain an idealdensity, a correction value is obtained for an input digital data valueso as to eliminate the difference from the ideal characteristic, and acorrection table is created. The created correction table is reflectedon the output γ unit 3007. The output γ unit 3007 adds a correspondingcorrection value in the correction table in accordance with an inputvalue, and outputs the sum. This correction processing attains an idealoutput density.

[Density Correction Processing of PDL Data]

Density correction processing when the above-mentioned image formingapparatus is used as a printer will be described. FIG. 25 is a blockdiagram showing an arrangement concerning density correction processingin the printer controller 2103.

In FIG. 25, reference numeral 3101 denotes an input I/F to an externaldevice such as the host computer 2104; 3102, a reception buffer; 3103,an object generation unit for mapping data to a bitmap; 3104, an objectbuffer; 3105, a rendering unit for performing color processing; 3106, aband buffer (output buffer); 3107, an output I/F to the enginecontroller 2002; 3108, a data correction unit; 3109, a dither processingunit; 3110, a CPU; 3111, a communication controller; and 3112, a PG(Pattern Generator) unit.

Detailed correction processing will be explained.

Up to creation of a correction table, density correction processing isbasically the same as in the case wherein the image forming apparatus isused as a copying machine.

More specifically, image data representing a pattern made up of aplurality of patches with different densities is generated by the PGunit 3112 in the printer controller 2103, and output by the printer viathe engine controller 2002.

The pattern output is placed on the original glass table 805 or originalfeeder 801 of the reader, and the pattern image is read. The subsequentprocessing is the same as density correction processing for a copiedimage, and a correction table is created. At this time, the idealinput/output characteristic is the same as in copying. The createdcorrection table is transmitted from the reader controller 106 to theprinter controller 2103 by using a communication means. That is, theserial communication controller 2205 in the reader controller 106 isconnected to the serial communication controller 3111 in the printercontroller 2103. The contents of the correction table are transmitted tothe printer controller 2103 by using the two controllers.

The CPU 3110 in the printer controller 2103 sets the correctioncharacteristic of the data correction unit 3108 on the basis of thetransmitted correction table. Accordingly, image data from the printercontroller 2103 can also undergo the same density correction as imagedata read from the reader.

Communication contents transmitted from the reader controller 106 to theprinter controller 2103 may be a correction table itself used by thedata correction unit 3108 of the printer controller 2103. For example,correction table data of 256 levels for each of three colors (C, M, andY) or four colors (C, M, Y, and K) are communicated.

The correction table can be generated in the printer controller 2103.For example, when the ideal input/output characteristic is differentfrom that in copying, a correction table for eliminating the differencebetween the ideal input/output characteristic and an input/outputcharacteristic held in the printer controller 2103 can be generated. Togenerate a correction table in the printer controller 2103, patternimage data read by the reader is directly transmitted from the readercontroller 106 to the printer controller 2103. In this case, it is alsopossible depending on the read resolution to sample a predeterminednumber of image data by the data sampling unit 3006 for each of densitypatches for three or four colors and to transmit the sampled data.

Alternatively, only the difference between read pattern image data andan ideal output value may be transmitted. By exchanging informationnecessary for density correction by using the serial communicationcontrollers, density correction can be easily performed for printingdata received by the printer controller without adopting any specialsignal line between the reader controller and the printer controller.

[Other Embodiment]

In the above embodiment, data from an original, host computer, or thelike is color data, and a color original reading apparatus is used. Theabove-described density adjustment processing can also be applied formonochrome data.

The present invention may be applied to a system constituted by aplurality of devices (e.g., a host computer, interface device, reader,and printer) or an apparatus comprising a single device (e.g., a copyingmachine or facsimile apparatus). For example, density adjustmentprocessing of the present invention can be implemented even in a systemin which a reader such as an image scanner is connected to a printer viaa network or cable.

The object of the present invention is realized even by supplying astorage medium which stores software program codes for realizing thefunctions of the above-described embodiment to a system or apparatus,and causing the computer (or a CPU or MPU) of the system or apparatus toread out and execute the program codes stored in the storage medium.

In this case, the program codes read out from the storage medium realizethe functions of the above-described embodiment, and the storage mediumwhich stores the program codes constitutes the present invention.

As a storage medium for supplying the program codes, a floppy disk, harddisk, optical disk, magnetooptical disk, CD-ROM, CD-R, magnetic tape,nonvolatile memory card, ROM, or the like can be used.

The functions of the above-described embodiment are realized not onlywhen the computer executes the readout program codes, but also when theOS (Operating System) running on the computer performs part or all ofactual processing on the basis of the instructions of the program codes.

The functions of the above-described embodiment are also realized whenthe program codes read out from the storage medium are written in thememory of a function expansion board inserted into the computer or thatof a function expansion unit connected to the computer, and the CPU ofthe function expansion board or function expansion unit performs part orall of actual processing on the basis of the instructions of the programcodes.

When the present invention is applied to the storage medium, the storagemedium stores program codes corresponding to at least one of theabove-described flow charts.

As has been described above, the present invention can implement animage forming apparatus having an image reading function in which thedensity of even an image formed based on data acquired from an apparatusother than an image reading apparatus can be corrected by arranging apattern generator for generating a predetermined pattern in a printercontroller for receiving external printing data and by correcting theprinting data on the basis of only the results of reading a patternoutput, and a control method therefor.

Furthermore, the present invention can be applied to the systemcomprising either a plurality of units or a single unit. It is needlessto say that the present invention can be applied to the case which canbe attained by supplying programs which execute the process defined bythe present system or invention.

As many apparently widely different embodiments of the present inventioncan be made without departing from the spirit and scope thereof, it isto be understood that the invention is not limited to the specificembodiments thereof except as defined in the appended claims.

1. An image processing apparatus comprising: image reading means forreading original image data; first generating means for generating imagedata of a first patch image read by said image reading means and sendingto a print controller, wherein the print controller generates a firstcorrection data based on the generated image data and a first idealinput/output characteristic of the print controller; and secondgenerating means for generating a second correction data based on imagedata of a second patch image read by said image reading means and asecond ideal input/output characteristic for a copying operation,wherein the second ideal input/output characteristic is different fromthe first ideal input/output characteristic, wherein image data read bysaid image reading means is corrected by a controller for the copyingoperation based on the second correction data, and image data receivedfrom an external device is corrected by the print controller based onthe first correction data.
 2. An image processing apparatus according toclaim 1, wherein the print controller and the controller for the copyingoperation reside on a same chassis.
 3. The image processing apparatusaccording to claim 1, wherein the image data of the first and the secondpatch images read by said image reading means to generate the first andthe second correction data are respectively generated by differentgenerating means.
 4. The image processing apparatus according to claim1, wherein the image data of the first and the second patch images readby said image reading means to generate the first and the secondcorrection data are both made up of a plurality of patches withdifferent densities.
 5. The image processing apparatus according toclaim 1, wherein the image data of the first and the second patch imagesread by said image reading means first corrected by performing a directmapping suitable for the characteristics of the print controller andthen corrected by applying the first correction data.
 6. An imageprocessing method comprising the steps of: reading original image dataread by an image reading means; generating image data of a first patchimage read by said image reading means and sending to a printcontroller, wherein the print controller generates a first correctiondata based on the generated image data and a first ideal input/outputcharacteristic of the print controller; and generating a secondcorrection data based on image data of a second patch image read bysaid-image reading means and a second ideal input/output characteristicfor a copying operation, wherein the second ideal input/outputcharacteristic is different from the first ideal input/outputcharacteristic, wherein image data read in said image reading step iscorrected by a controller for the copying operation based on the secondcorrection data, and image data received from an external device iscorrected by the print controller based on the first correction data. 7.An image processing apparatus comprising: image reading means forreading original image data; first generating means for generating afirst correction data for printing based on image data of a first patchimage read by said image reading means and a first ideal input/outputcharacteristic of a printer; second generating means for generating asecond correction data for a copying operation based on image data of asecond patch image read by said image reading means and a second idealinput/output characteristic for copying, which is different from thefirst ideal input/output characteristic, wherein when the copyingoperation is performed, image data for the copying operation iscorrected based on the second correction data, and image data, writtenin a description language and received from an external device otherthan the image reading means, is corrected based on the first correctiondata.
 8. The image processing apparatus according to claim 7, whereinsaid first patch image is made up of a plurality of patches withdifferent densities.
 9. The image processing apparatus according toclaim 7, wherein said second patch image is made up of a plurality ofpatches with different densities.